home *** CD-ROM | disk | FTP | other *** search
/ Delphi Informant Complete 1995 - 2000 / Delphi Informant Complete 1995 to 2000.iso / Delphi Informant Magazine Complete Works SOURCE CODE 1998.rar / 1998 / Mar / di9803cm / POETClasses.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-08-20  |  8.0 KB  |  330 lines

  1. unit POETClasses;
  2.  
  3. interface
  4. uses POETAutomation_TLB, Dialogs;
  5.  
  6. type
  7.  
  8. PtEmployee = class
  9.    PtObj: OleVariant;
  10.    function GetSurrogate: string;
  11.    procedure Store(value: integer);
  12.    procedure Delete(value: integer);
  13.    procedure SetId (value: string);
  14.    function GetId: string;
  15.    procedure SetFname(value: string);
  16.    function GetFname: string;
  17.    procedure SetLname(value: string);
  18.    function GetLname: string;
  19.    procedure SetAddr(value: string);
  20.    function GetAddr: string;
  21.    procedure SetCity(value: string);
  22.    function GetCity: string;
  23.    procedure SetState(value: string);
  24.    function GetState: string;
  25.    procedure SetZip(value: string);
  26.    function GetZip: string;
  27.    procedure RequestSalaryIncrease; virtual;
  28. end;
  29.  
  30. PtSalesMgr = class(PtEmployee)
  31.    procedure SetCompanyCar(value: Boolean);
  32.    function GetCompanyCar: Boolean;
  33.    procedure SetGymMembership (value: Boolean);
  34.    function GetGymMembership: Boolean;
  35.    procedure SetStocks (value: integer);
  36.    function GetStocks: integer;
  37.    function GetCurrentSales: integer;
  38.    function GetTargetSales: integer;
  39.    procedure SetSalesReps (value: OleVariant);
  40.    function GetSalesReps: OleVariant;
  41.    procedure RequestSalaryIncrease; override;
  42. end;
  43.  
  44. PtSalesRep = class(PtEmployee)
  45.    procedure SetCurrentSales (value: integer);
  46.    function GetCurrentSales: integer;
  47.    procedure SetTargetQuota (value: integer);
  48.    function GetTargetQuota: integer;
  49.    procedure SetAccounts (value: OleVariant);
  50.    function GetAccounts: OleVariant;
  51.    procedure SetSalesMgr(var value: PtSalesMgr);
  52.    function GetSalesMgr: OleVariant;
  53.    procedure RequestSalaryIncrease; override;
  54. end;
  55.  
  56. PtAccount = class
  57.    PtObj: OleVariant;
  58.    procedure Store(value: integer);
  59.    procedure Delete(value: integer);
  60.    function GetSurrogate: string;
  61.    procedure SetName(value: string);
  62.    function GetName: string;
  63.    procedure SetId(value: string);
  64.    function GetId: string;
  65.    procedure SetContact(value: string);
  66.    function GetContact: string;
  67.    procedure SetSalesReps(value: OleVariant);
  68.    function GetSalesReps: OleVariant;
  69. end;
  70.  
  71. implementation
  72.  
  73. uses
  74.    Main;
  75.   
  76. //PtEmployee methods
  77.  
  78. function PtEmployee.GetSurrogate: string;
  79. begin
  80.    Result := PtObj.surrogate;
  81. end;
  82.  
  83. procedure PtEmployee.Store(value: integer);
  84. begin
  85.    PtObj.Store(value);
  86. end;
  87.  
  88. procedure PtEmployee.Delete(value: integer);
  89. begin
  90.    PtObj.Delete(value);
  91. end;
  92.  
  93. procedure PtEmployee.SetId(value: string);
  94. begin
  95.    PtObj.SetAttribute('Emplid', value);
  96. end;
  97. function PtEmployee.GetId: string;
  98. begin
  99.    Result := PtObj.GetAttribute('Emplid');
  100. end;
  101.  
  102. procedure PtEmployee.SetFname(value: string);
  103. begin
  104.    PtObj.SetAttribute('Fname', value);
  105. end;
  106. function PtEmployee.GetFname: string;
  107. begin
  108.    Result := PtObj.GetAttribute('Fname');
  109. end;
  110.  
  111. procedure PtEmployee.SetLname(value: string);
  112. begin
  113.    PtObj.SetAttribute('Lname', value);
  114. end;
  115. function PtEmployee.GetLname: string;
  116. begin
  117.    Result := PtObj.GetAttribute('Lname');
  118. end;
  119.  
  120. procedure PtEmployee.SetAddr(value: string);
  121. begin
  122.    PtObj.SetAttribute('Addr', value);
  123. end;
  124. function PtEmployee.GetAddr: string;
  125. begin
  126.    Result := PtObj.GetAttribute('Addr');
  127. end;
  128.  
  129. procedure PtEmployee.SetCity(value: string);
  130. begin
  131.    PtObj.SetAttribute('City', value);
  132. end;
  133. function PtEmployee.GetCity: string;
  134. begin
  135.    Result := PtObj.GetAttribute('City');
  136. end;
  137.  
  138. procedure PtEmployee.SetState(value: string);
  139. begin
  140.    PtObj.SetAttribute('State', value);
  141. end;
  142. function PtEmployee.GetState: string;
  143. begin
  144.    Result := PtObj.GetAttribute('State');
  145. end;
  146.  
  147. procedure PtEmployee.SetZip(value: string);
  148. begin
  149.    PtObj.SetAttribute('Zip', value);
  150. end;
  151. function PtEmployee.GetZip: string;
  152. begin
  153.    Result := PtObj.GetAttribute('Zip');
  154. end;
  155.  
  156. procedure PtEmployee.RequestSalaryIncrease;
  157. begin
  158.    Messagedlg('Please, please give me a 10% raise!', mtWarning, [mbOK],0);
  159. end;
  160.  
  161. //PtSalesMgr methods
  162.  
  163. procedure PtSalesMgr.SetCompanyCar(value: boolean);
  164. begin
  165.    PtObj.SetAttribute('CompanyCar',value);
  166. end;
  167. function PtSalesMgr.GetCompanyCar: boolean;
  168. begin
  169.    Result := PtObj.GetAttribute('CompanyCar');
  170. end;
  171.  
  172. procedure PtSalesMgr.SetGymMembership(value: boolean);
  173. begin
  174.    PtObj.SetAttribute('GymMembership', value);
  175. end;
  176. function PtSalesMgr.GetGymMembership: boolean;
  177. begin
  178.    Result := PtObj.GetAttribute('GymMembership');
  179. end;
  180.  
  181. procedure PtSalesMgr.SetStocks(value: integer);
  182. begin
  183.    PtObj.SetAttribute('StockOptions', value);
  184. end;
  185. function PtSalesMgr.GetStocks: integer;
  186. begin
  187.    Result := PtObj.GetAttribute('StockOptions');
  188. end;
  189.  
  190. function PtSalesMgr.GetCurrentSales: integer;
  191. var
  192.    i: integer;
  193. begin                                            // A SalesMgr's Current Sales
  194.    i := 0;                                       // are the total sales
  195.    SmSalesReps := SalesMgr.GetSalesReps;         // of the SalesMgr's assigned
  196.    If SmSalesReps.First then repeat              // SalesReps
  197.       SmSalesRep.PtObj := SmSalesReps.Get;
  198.       i := i + SmSalesRep.GetCurrentSales;
  199.    until not SmSalesReps.Next;
  200.    Result := i;
  201. end;
  202.  
  203. function PtSalesMgr.GetTargetSales: integer;
  204. var
  205. i: integer;
  206. begin                                            // A SalesMgr's Target Sales
  207.    i := 0;                                       // are the total Target Quotas
  208.    SmSalesReps := SalesMgr.GetSalesReps;         // of the SalesMgr's assigned
  209.    If SmSalesReps.First then repeat              // SalesReps
  210.       SmSalesRep.PtObj := SmSalesReps.Get;
  211.       i := i + SmSalesRep.GetTargetQuota;
  212.    until not SmSalesReps.Next;
  213.    Result := i;
  214. end;
  215.  
  216. procedure PtSalesMgr.SetSalesReps(value: OleVariant);
  217. begin
  218.    PtObj.SetAttribute('SalesReps', value);
  219. end;
  220. function PtSalesMgr.GetSalesReps: OleVariant;
  221. begin
  222.    Result := PtObj.GetAttribute('SalesReps');
  223. end;
  224.  
  225. procedure PtSalesMgr.RequestSalaryIncrease;
  226. begin
  227.    Messagedlg('I want more stock options!', mtWarning, [mbYes], 0);
  228. end;
  229.  
  230. //PtSalesRep methods
  231.  
  232. procedure PtSalesRep.SetCurrentSales(value: integer);
  233. begin
  234.    PtObj.SetAttribute('CurrentSales', value);
  235. end;
  236. function PtSalesRep.GetCurrentSales: integer;
  237. begin
  238.    Result := PtObj.GetAttribute('CurrentSales');
  239. end;
  240.  
  241. procedure PtSalesRep.SetTargetQuota(value: integer);
  242. begin
  243.    PtObj.SetAttribute('TargetQuota', value);
  244. end;
  245. function PtSalesRep.GetTargetQuota: integer;
  246. begin
  247.    Result := PtObj.GetAttribute('TargetQuota');
  248. end;
  249.  
  250. procedure PtSalesRep.SetAccounts(value: OleVariant);
  251. begin
  252.    PtObj.SetAttribute('Accounts') := value;
  253. end;
  254. function PtSalesRep.GetAccounts: OleVariant;
  255. begin
  256.    Result := PtObj.GetAttribute('Accounts');
  257. end;
  258.  
  259. procedure PtSalesRep.SetSalesMgr(var value: PtSalesMgr);
  260. begin
  261.    PtObj.SetAttribute('SalesMgr', value.PtObj);
  262. end;
  263.  
  264.  
  265. function PtSalesRep.GetSalesMgr: OleVariant;
  266. begin
  267.    Result := PtObj.GetAttribute('SalesMgr');
  268. end;
  269.  
  270. procedure PtSalesRep.RequestSalaryIncrease;
  271. begin
  272.    Messagedlg('I deserve a 20% raise!', mtWarning, [mbYes], 0);
  273. end;
  274.  
  275.  
  276. //PtAcct methods
  277.  
  278. procedure PtAccount.Store(value: integer);
  279. begin
  280.    PtObj.Store(value);
  281. end;
  282.  
  283. procedure PtAccount.Delete(value: integer);
  284. begin
  285.    PtObj.Delete(value);
  286. end;
  287.  
  288. function PtAccount.GetSurrogate: string;
  289. begin
  290.    Result := PtObj.surrogate;
  291. end;
  292.  
  293. procedure PtAccount.SetName(value: string);
  294. begin
  295.    PtObj.SetAttribute('AcctName', value);
  296. end;
  297. function PtAccount.GetName: string;
  298. begin
  299.    Result := PtObj.GetAttribute('AcctName');
  300. end;
  301.  
  302. procedure PtAccount.SetId(value: string);
  303. begin
  304.    PtObj.SetAttribute('AcctId', value);
  305. end;
  306. function PtAccount.GetId: string;
  307. begin
  308.    Result := PtObj.GetAttribute('AcctId');
  309. end;
  310.  
  311. procedure PtAccount.SetContact(value: string);
  312. begin
  313.    PtObj.SetAttribute('Contact', value);
  314. end;
  315. function PtAccount.GetContact: string;
  316. begin
  317.    Result := PtObj.GetAttribute('Contact');
  318. end;
  319.  
  320. procedure PtAccount.SetSalesReps(value: OleVariant);
  321. begin
  322.    PtObj.SetAttribute('SalesReps') := value;
  323. end;
  324. function PtAccount.GetSalesReps: OleVariant;
  325. begin
  326.    Result := PtObj.GetAttribute('SalesReps');
  327. end;
  328.  
  329. end.
  330.